<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    function reorderedPowerOf2(n) {
      // 由于我们可以按任何顺序将数字重新排序，因此对于两个不同的整数 a 和 b，
      //如果其十进制表示的字符数组，从小到大排序后的结果是相同的，
      ///那么若 a 能够重排得到 2 的幂，b 也可以；若 a 不能重排得到 2 的幂，那么 b 也不能。
      // 简单来说，排序是为了判断是否逐位相等存在。
      const set1 = new Set();
      for (let i = 0; i <= n; i++) {
        set1.add(String(Math.pow(2, i)).split('').sort().join(''));
      }
      return set1.has(n.toString().split('').sort().join(''));
    };
    console.log(reorderedPowerOf2(n = 10))
  </script>
</body>

</html>